package com.ysx.TrainSchedulesAndTicketSales.exception;

/**
 * 业务异常枚举类
 * 用于定义火车票销售系统中的业务异常类型及其描述信息
 */
public enum BusinessExceptionEnum {

    /**
     * 购票数量错误异常
     */
    CONFIRM_ORDER_TICKET_COUNT_ERROR("余票不足"),

    /**
     * 购票异常
     */
    CONFIRM_ORDER_EXCEPTION("购票异常"),

    /**
     * 令牌校验失败异常
     */
    CONFIRM_ORDER_SK_TOKEN_FAIL("令牌校验失败"),

    /**
     * 获取锁失败异常
     */
    CONFIRM_ORDER_LOCK_FAIL("当前抢票人数过多，请稍后重试"),

    /**
     * 购票请求被限流异常
     */
    CONFIRM_ORDER_FLOW_EXCEPTION("购票请求被限流");

    /**
     * 异常描述信息
     */
    private String desc;

    /**
     * 构造函数
     * @param desc 异常描述信息
     */
    BusinessExceptionEnum(String desc) {
        this.desc = desc;
    }

    /**
     * 获取异常描述信息
     * @return 异常描述字符串
     */
    public String getDesc() {
        return desc;
    }

    /**
     * 设置异常描述信息
     * @param desc 异常描述字符串
     */
    public void setDesc(String desc) {
        this.desc = desc;
    }

    /**
     * 重写toString方法，返回枚举对象的字符串表示
     * @return 包含描述信息的字符串
     */
    @Override
    public String toString() {
        return "BusinessExceptionEnum{" +
                "desc='" + desc + '\'' +
                '}';
    }
}